The text that was used on the Univeristy of Amsterdam’s lab website to recruite participants for the study.
“The goal of the study is to better understand the language people use to describe emotional events. We do this by asking you to recall emotional events. The study takes approcimately 30 minutes and can be completed at home!”
We aimed to induce the target emotion (love, awe, pride, or neutral) by having participants recall three emotionally salient memories in which the participant experienced the target emotion. Participants were randomly assigned to one of four emotion induction conditions (love, awe, pride, neutral). Depending on the assigned condition, the fields were changed accordingly.
“We are interested in the language people use to describe experiences in which they felt ${lm://Field/1}. To get a clear picture we ask you to ${lm://Field/2}. Please write 400-450 characters (i.e. ± 5 sentences) describing one of these recent memories. Please be aware that you will not receive any credits if you write gibberish words or if you copy the same sentence or story multiple times.”
- love
- awe
- pride
- neutral
Love
“Please take a few minutes to think about a particular time, fairly recently, when you experienced companionate love. This might have been feelings of warmth and affection toward platonic others, such as friends or family, in close but nonsexual relationships.”Cavanaugh et al. (2015, p. 659)[^1]
Awe
“Please take a few minutes to think about a particular time, fairly recently, when you encountered a natural scene that caused you to feel awe. This might have been a sunset, a view from a high place, or any other time you were in a natural setting that you felt was beautiful.”Piff et al. (2015, p. 887)[^2]
Pride
“Please take a few minutes to think about a particular time, fairly recently, when you felt pride. This might have been being accepted to a university, winning an event or competition, or any other time that you achieved a personal accomplishment.”Piff et al. (2015, p. 887)[^2]
Neutral
“Please take a few minutes to think about something you did fairly recently. This might have been riding a bike, studying for a test, or any other thing that happened during your day.”Piff et al. (2015, p. 887)[^2]
After participants recalled their first memory, the following instruction prompted them to recall the second and third emotionally salient memories:
“Please write about another memory in which you felt ${lm://Field/1}. Please think of a different time than the one you previously described – this allows us to create as large an emotion lexicon as possible. Please write 400-450 characters (i.e. ± 5 sentences) describing one of these recent memories ${lm://Field/3}.”
Love
“(For example, feeling warmth or affection towards platonic others such as friends or family)”
Awe
“(For example, watching a natural setting such as the sunset)”
Pride
“(For example, achieving a personal accomplishment)”
Neutral
“(For example, anything that happend during your day)”
7-point Likert Scale - 1 item
“On a scale from 1 (not at all) to 7 (a great deal) how intense was the event you recalled for you?”
Scoring
[1] Not at all [4] A moderate amount [7] A great deal
7-point Likert Scale - 7 items
“On a scale from 1 (does not describe my feelings) to 7 (clearly describes my feelings) I feel…”
Scoring
[1] Does not describe my feelings [4] Moderately describes my feelings [7] Clearly describes my feelings"
7-point Likert Scale - 3 items
“You have just indicated to what extent you currently experience distinct emotions. We have a few more questions that cover a broader sense of how you currently feel.”
Scoring
[1] Does not describe my feelings [4] Moderately describes my feelings [7] Clearly describes my feelings
The last step before completing the study is to provide some demographical information.
“This is the end of the study assessing how people use language to describe emotional experiences. However, before you close the browser (automatically saving all answers), researchers at ${lm://Field/1} want to ask for your help. They have recorded voice clips of different species and need help determining the most likely context in which these sounds were recorded. You can decide for yourself how many clips you would like to listen to, each clip is only a few seconds long. Would you be willing to help them? Please be aware that you will not receive additional credit for this, but you would help the researchers at ${lm://Field/1} greatly!”
“First of all, we would like to thank you for taking part in this study. We will check your data and add your participation credits as soon as possible. Before you started the experiment, we told you that we were studying how people use language to describe experiences in which they felt a specific emotion. Recalling these memories was done in order to elicit feelings in participants of either love, awe, pride, or a neutral control condition, depending on the conditions that you and the other participants were randomly assigned to. Our primary interest in this study, in fact, was whether participants would engage in helping another researcher or not. Previous studies have found that inducing positive emotions can make people donate more money to others. In this study we test whether positive emotions also make people help others more compared to participants who feel neutral. Please be aware that any of your peers might still take part in this research, please do not tell them about the true purpose of the study! If you have any additional questions about the research, or wish to learn more about the results of the study, please leave a comment or contact the lead researcher: Dr. D.A. Sauter (e-mail_1). If you have any ethical complaints about this study, please contact Dr. M. Rotteveel member of the ethics committee of the Social Psychology Department at the University of Amsterdam (e-mail_2). Kind regards, Sally Hogenboom and Disa Sauter”
Extract the data from Qualtrics Survey website:
Load Correct File. Please change script depending on working directory and results file name.
setwd("~/Documents/Universiteit/Master/Internship")
dat <- read.csv(file = "Data_Final_Rversion.csv", header = TRUE, sep = ";")
Participants with a nationality other than Dutch were excluded (N = 3), because the beneficiary manipulation was based on Dutch recipients being the participants’ in-group and German beneficiaries the participants’ out-group.
## Remove rows if Nationality == 2 == Non-Dutch
dat <- dat[grep(2, dat$Nationality, invert=TRUE),]
Participants (N = 2) were excluded if their memories contained gibberish words, or repeated a character or sentence multiple times. Participants to be excluded were identified by inspecting of the data.
It was stated in the research proposal that the data of participants with a score on the target emotion larger than 2 SD from the group average would be excluded from analysis.
Love
descrp_Love <- describe(dat$C_Love[dat$Emotion_Condition == "love"])
upper_boundary <- (descrp_Love$mean + (2*descrp_Love$sd))
lower_boundary <- (descrp_Love$mean - (2*descrp_Love$sd))
exclude_Love <- subset(x = dat, subset = (dat$C_Love > upper_boundary || dat$C_Love < lower_boundary))
## N = ...
cat(nrow(exclude_Love))
## 0
Awe
descrp_Awe <- describe(dat$C_Awe[dat$Emotion_Condition == "awe"])
upper_boundary <- (descrp_Awe$mean + (2*descrp_Awe$sd))
lower_boundary <- (descrp_Awe$mean - (2*descrp_Awe$sd))
exclude_Awe <- subset(x = dat, subset = (dat$C_Awe > upper_boundary || dat$C_Awe < lower_boundary))
cat(nrow(exclude_Awe))
## 0
Pride
descrp_Pride <- describe(dat$C_Pride[dat$Emotion_Condition == "pride"])
upper_boundary <- (descrp_Pride$mean + (2*descrp_Pride$sd))
lower_boundary <- (descrp_Pride$mean - (2*descrp_Pride$sd))
exclude_Pride <- subset(x = dat, subset = (dat$C_Pride > upper_boundary || dat$C_Pride < lower_boundary))
## N = ...
cat(nrow(exclude_Pride))
## 0
Conclusion
Based on the participant scores, group averages, and group SD, 0 participants were excluded based on this criterion.
After inspecting the data, it became evident that two additional exclusion criteria were warranted.
[i.e. exposure to multiple conditions]
Identified at UVA lab site: https://www.lab.uva.nl/LAB/recruitment/Projects/edit_participations/7786]
## Studentnumbers
# 11226439 - Awe
# 10479279 - Neutral
# 11327065 - Awe
# 10586903 - Neutral
# 10745599 - Already excluded based on Nationality
# 11289171 - Love
## Remove rows
dat <- dat[-(as.numeric(which(dat$Awe_Stdnr == "11226439"))),]
dat <- dat[-(as.numeric(which(dat$Neutral_Stdnr == "10479279"))),]
dat <- dat[-(as.numeric(which(dat$Awe_Stdnr == "11327065"))),]
dat <- dat[-(as.numeric(which(dat$Neutral_Stdnr == "10586903"))),]
dat <- dat[-(as.numeric(which(dat$Love_Stdnr == "11289171"))),]
## N = ...
cat(5)
## 5
## Duration over 17 hours
## Studentnumbers:
# 11240547 - Awe Condition
## Remove rows
dat <- dat[-(as.numeric(which(dat$Awe_Stdnr == "11240547"))),]
## N = ...
cat(1)
## 1
The number of participants in each condition.
dat$Emotion_Condition <- factor(dat$Emotion_Condition) # remove uneccesary factors
Emotion_participants <- summary(dat$Emotion_Condition)
Participant_overview_matrix <- matrix(data = c( Emotion_participants[1], Emotion_participants[2], Emotion_participants[3], Emotion_participants[4],
((Emotion_participants[1]/nrow(dat))*100), ((Emotion_participants[2]/nrow(dat))*100), ((Emotion_participants[3]/nrow(dat))*100), ((Emotion_participants[4]/nrow(dat))*100)), nrow = 2, byrow = TRUE, dimnames = list(c("Absolute N", "Percentage"), c("Awe", "Love", "Neutral", "Pride") ))
round(Participant_overview_matrix, 2)
## Awe Love Neutral Pride
## Absolute N 15.00 11.00 32.00 21.00
## Percentage 18.99 13.92 40.51 26.58
NOTE
There is an unequal distribution of participants across conditions. This could be due to a mistake in the design of the experiment. This seems unlikely as the design is fairly straightforward and we have not been able to detect any mistakes. It is also possible that the randomization function as advertised by Qualtrics (the survey/experiment host software) does not function as it should. In other words, it could be that their randomization function, in fact does not guarantee a randomized, but equal, distribution of participants across conditions. Thirdly, it is possible that the unequal distribution of participants across conditions is caused by participants dropping out and/or starting the experiment multiple times. If each start of the experiment is logged as a participant in that condition, after excluding the data that could not be used, this could leave a skewed distribution across conditions.
Regardless of the cause of the unequal distribution, this should be taken into account for future analyses as they generally are based on the assumption of equal sample sizes.
dat$Recipient_Condition <- factor(dat$Recipient_Condition)
table(dat$Recipient_Condition)
##
## Goethe University Frankfurt University of Amsterdam
## 47 32
table(dat$Emotion_Condition, dat$Recipient_Condition)
##
## Goethe University Frankfurt University of Amsterdam
## awe 7 8
## love 6 5
## neutral 20 12
## pride 14 7
dat$Gender <- factor(x = dat$Gender)
levels(dat$Gender) <- c("men", "women")
summary(dat$Gender)
## men women
## 25 54
describe(dat$Age)
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 79 20.7 2.11 20 20.46 1.48 18 29 11 1.22 1.8 0.24
All participants were Dutch, as participants with other nationalities were excluded
We also tracked whether participants completed the experiment on their mobile or on the computer.
dat$Device <- factor(dat$Device)
levels(dat$Device) <- c("Other", "Mobile")
summary(dat$Device)
## Other Mobile
## 72 7
Manipulation checks determining whether specific emotion induction (i.e. the experimental emotions) was succesful.
Emotion induction is succesful if participants in each of the conditions rate their current feeling on that specific feeling higher than participants in other conditions (Piff et al., 2015) [^2]. For example, participants in the love condition report higher levels of current love than participants in the other conditions.
pirateplot(dat$C_Love ~ dat$Emotion_Condition, data = dat, pal = gray(.7), xlab = "Emotion_Condition",
main = "Self Report of Current Feeling - Love", ylab = "Current_Love", ylim=c(1,7))
Figure 1. Current Feeling: Love. The horizontal black line represent the group average. The solid boxes represent the 95% CI. The distribution of scores is outlined by a black line. All individual datapoints are represented by single dots.
data_pirateplot_love <- pirateplot(dat$C_Love ~ dat$Emotion_Condition, data = dat, plot = FALSE, ylim=c(1,7))
qqnorm(dat$C_Love); qqline(dat$C_Love)
Figure 2. Q-Q Plot of Self Report Current Feelings of Love
pirateplot(dat$C_Awe ~ dat$Emotion_Condition, data = dat, pal = gray(.7), xlab = "Emotion_Condition",
main = "Self Report of Current Feeling - Awe", ylab = "Current_Awe", ylim=c(1,7))
Figure 3. Current Feeling: Awe. The horizontal black line represent the group average. The solid boxes represent the 95% CI. The distribution of scores is outlined by a black line. All individual datapoints are represented by single dots.
data_pirateplot_awe <- pirateplot(dat$C_Awe ~ dat$Emotion_Condition, data = dat, ylim=c(1,7), plot = FALSE)
qqnorm(dat$C_Awe); qqline(dat$C_Awe)
Figure 4. Q-Q Plot of Self Report Current Feelings of Awe
pirateplot(dat$C_Pride ~ dat$Emotion_Condition, data = dat, pal = gray(.7), xlab = "Emotion_Condition",
main = "Self Report of Current Feeling - Pride", ylab = "Current_Pride", ylim=c(1,7))
Figure 5. Current Emotion: Pride. The horizontal black line represent the group average. The solid boxes represent the 95% CI. The distribution of scores is outlined by a black line.All individual datapoints are represented by single dots.
data_pirateplot_pride <- pirateplot(dat$C_Pride ~ dat$Emotion_Condition, data = dat, ylim=c(1,7), plot = FALSE)
qqnorm(dat$C_Pride); qqline(dat$C_Pride)
Figure 6. Q-Q Plot of Self Report Current Feelings of Pride
Interpretation
The ICC measures the correlation between DV’s. If the correlation of the “Single_raters_absolute” is significant, this indicates that the observations are not independent, and thus the assumption of the MANOVA is violated [^1].
Analysis
ind_manova_emotion_check <- ICC(cbind(dat$C_Love, dat$C_Awe, dat$C_Pride))
print(ind_manova_emotion_check)
## Call: ICC(x = cbind(dat$C_Love, dat$C_Awe, dat$C_Pride))
##
## Intraclass correlation coefficients
## type ICC F df1 df2 p lower bound
## Single_raters_absolute ICC1 0.087 1.3 78 158 0.09295 -0.040
## Single_random_raters ICC2 0.177 2.0 78 156 0.00012 0.036
## Single_fixed_raters ICC3 0.252 2.0 78 156 0.00012 0.113
## Average_raters_absolute ICC1k 0.223 1.3 78 158 0.09295 -0.129
## Average_random_raters ICC2k 0.392 2.0 78 156 0.00012 0.102
## Average_fixed_raters ICC3k 0.502 2.0 78 156 0.00012 0.276
## upper bound
## Single_raters_absolute 0.23
## Single_random_raters 0.33
## Single_fixed_raters 0.40
## Average_raters_absolute 0.48
## Average_random_raters 0.60
## Average_fixed_raters 0.67
##
## Number of subjects = 79 Number of Judges = 3
Conclusion
The Single_raters_absolute ICC is (0.087) not significant (p = 0.09295). This indicates that the observations of the MANOVA (i.e. scores on the Current Love, Current Awe, and Current Pride scales) are independent. The assumption is NOT violated.
Interpretation
Significant results of the Shapiro-Wilk Test for multivariate normality indicate violation of multivariate normality. Field, however, illustrates that large samples will most likely result in significant Shapiro-Wilk tests. Thus, the data should also be analyzed when plotted.
Analyses
Shapiro-Wilk Test Induced Emotion Condition: Awe
DV_Awe <- subset(x = dat, dat$Emotion_Condition == "awe", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Awe[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.91731, p-value = 0.1752
Shapiro-Wilk Test Induced Emotion Condition: Love
DV_Love <- subset(x = dat, dat$Emotion_Condition == "love", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Love[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.86069, p-value = 0.05877
Shapiro-Wilk Test Induced Emotion Condition: Pride
DV_Pride <- subset(x = dat, dat$Emotion_Condition == "pride", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Pride[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.9039, p-value = 0.04168
Shapiro-Wilk Test Induced Emotion Condition: Neutral
DV_Neutral <- subset(x = dat, dat$Emotion_Condition == "neutral", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Neutral[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.87483, p-value = 0.001504
If multivariate normality is violated then look at the outliers, to see if removing them might normalize the data. If not, conduct a robust MANOVA (Field, 2012, p. 895)
aq.plot(x = dat[,45:47])
## Projection to the first and second robust principal components.
## Proportion of total variation (explained variance): 0.738164
Figure 7. Series of four plots to determine influential outliers (red).
## $outliers
## 1 2 3 4 6 7 8 9 10 11 12 13
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 14 15 16 17 18 19 20 21 23 24 26 27
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 28 29 30 31 32 33 34 35 36 37 38 39
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 40 41 42 43 45 46 47 48 49 50 51 52
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 53 54 56 57 58 59 60 61 62 64 66 68
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## 69 70 71 73 74 75 76 77 78 80 81 82
## FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE TRUE
## 83 84 86 87 88 89 91
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE
# col 45 = C_Love, col 46 = C_Awe, col 47 = C_Pride
Conclusion
The Shapiro-Wilk tests for normality indicate that the multivariate normality assumptions are violated for the Love, Pride, and Neutral Emotion Induction Conditions. Furthermore, row 66 and row 73 are identified as outliers. Violations of multivariate normality are supported by the earlier plots which clearly show the absence of normally distributed data in, for example, the Neutral condition.
Goal: to determine whether multivariate normality can be restored by identifying and deleting outliers.
outlier_excluded_data <- dat[-c(66, 73),] #remove outlier row 67 and 73 from dataset
# re-run multivariate normality tests
DV_Awe_outlier <- subset(x = outlier_excluded_data, outlier_excluded_data$Emotion_Condition == "awe", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Awe_outlier[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.91731, p-value = 0.1752
DV_Love_outlier <- subset(x = outlier_excluded_data, outlier_excluded_data$Emotion_Condition == "love", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Love_outlier[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.86069, p-value = 0.05877
DV_Pride_outlier <- subset(x = outlier_excluded_data, outlier_excluded_data$Emotion_Condition == "pride", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Pride_outlier[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.9039, p-value = 0.04168
DV_Neutral_outlier <- subset(x = outlier_excluded_data, outlier_excluded_data$Emotion_Condition == "neutral", select = c(C_Love, C_Awe, C_Pride))
mshapiro.test(t(DV_Neutral_outlier[,1:3]))
##
## Shapiro-Wilk normality test
##
## data: Z
## W = 0.88573, p-value = 0.003826
Conclusion
Removing the outliers (N=2) does not influence the normality of the dependent variables. Consequently, the multivariate normality assumption is still violated. However, “Results from various studies that considered up to 10 variables and small or moderate sample sizes […] indicate that deviation from multivariate normality has only a small effect on type I error (Stevens, 2009, p. 222)”. Thus, even though the multivariate normality assumption is violated, this is not cause for concern.
Interpretation
Significant value of Box’s M-test indicates heterogeneity of covariance matrices
Covariance Matrices
DVs <- cbind(dat$C_Love, dat$C_Awe, dat$C_Pride) # dependent variables
colnames(DVs) <- c("C_Love", "C_Awe", "C_Pride")
by(DVs, dat$Emotion_Condition, cov)
## INDICES: awe
## C_Love C_Awe C_Pride
## C_Love 0.8131429 0.5907143 0.1658571
## C_Awe 0.5907143 2.9128571 0.7128571
## C_Pride 0.1658571 0.7128571 1.7197143
## --------------------------------------------------------
## INDICES: love
## C_Love C_Awe C_Pride
## C_Love 1.2607273 0.007 0.3948182
## C_Awe 0.0070000 3.802 1.0750000
## C_Pride 0.3948182 1.075 2.3785455
## --------------------------------------------------------
## INDICES: neutral
## C_Love C_Awe C_Pride
## C_Love 2.7264516 0.9500806 -0.1731452
## C_Awe 0.9500806 1.7341835 0.3514415
## C_Pride -0.1731452 0.3514415 2.9028931
## --------------------------------------------------------
## INDICES: pride
## C_Love C_Awe C_Pride
## C_Love 1.0314762 0.2791905 0.8492857
## C_Awe 0.2791905 1.7734762 0.4452143
## C_Pride 0.8492857 0.4452143 2.3025714
Analysis
# DVs = cbind(dat$C_Love, dat$C_Awe, dat$C_Pride)
# IV = Emotion_Condition
homo_manova_emotion_check <- boxM(data = DVs, grouping = dat$Emotion_Condition)
print(homo_manova_emotion_check)
##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: DVs
## Chi-Sq (approx.) = 23.415, df = 18, p-value = 0.1752
Conclusion
The Box’s M-test for homogeneity of covariances is non significant(p = 0.1683). This assumption is thus NOT violated.
Based on the assumption checks it became evident that only the multivariate normality assumption has been violated. However, the type I error is not significantly influenced by this violation, and thus a MANOVA can still be executed (Finch, 2015).
Interpretation
Significant p-value indicates that the groups differ on the dependent variables. Reason for post-hoc ANOVA analyses to determine on which DV the groups differ specifically.
Fitting
manova_emotion_check <- manova(cbind(dat$C_Love, dat$C_Awe, dat$C_Pride) ~ dat$Emotion_Condition, data = dat)
summary(manova_emotion_check, type="Pillai", intercept = TRUE)
## Df Pillai approx F num Df den Df Pr(>F)
## (Intercept) 1 0.94835 446.75 3 73 < 2e-16 ***
## dat$Emotion_Condition 3 0.29851 2.76 9 225 0.00439 **
## Residuals 75
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Conclusion The four emotion conditions (Love, Awe, Pride, and Neutral) differ significantly (Pillai’s Trace = 0.29993, F [1,3] = 2.81, p = 0.003739) on the dependent variables: Current ratings of Love, Awe, and Pride. Participants across all four conditions do not rate their current feelings in a similar way.
Interpretation
Significant post-hoc ANOVA’s indicate that the emotions conditions (love, awe, pride, neutral) differed on ratings of the current feelings of love, awe, or pride.
Analyses
with…
post_hoc_anova_emotion <- summary.aov(manova_emotion_check)
post_hoc_anova_emotion
## Response 1 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition 3 13.982 4.6607 2.7068 0.05122 .
## Residuals 75 129.141 1.7219
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 2 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition 3 22.978 7.6593 3.4187 0.02153 *
## Residuals 75 168.029 2.2404
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 3 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition 3 27.397 9.1324 3.7244 0.01487 *
## Residuals 75 183.903 2.4520
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Bonferroni Correction for multiple comparrisons
# Store p-values from the post-hoc anova's, indexed by [[which anova]][1st item of 5th item]
p_values_emotion_anovas <- c(post_hoc_anova_emotion[[1]][1,5], post_hoc_anova_emotion[[2]][1,5],post_hoc_anova_emotion[[3]][1,5])
# Round the adjusted p-values (bonferroni correction) to three digits
round(p.adjust(p_values_emotion_anovas,method="bonferroni", n = length(p_values_emotion_anovas)), digits = 3)
## [1] 0.154 0.065 0.045
Conclusion
Based on an alpha level of 0.05, the emotion conditions differ only on the DV current emotion - pride. However, because the multivariate normality assumption was violated, and the Q-Q plots provide graphical evidence that univariate normality most likely also is violated, a carefull analysis of the plots is also in order.
When viewing the data for the current emotion Love, it becomes evident that participants in the four conditions score fairly similary on current feelings of love. It should, however, been taken into account that the data are not normally distributed within conditions. For example, the sample distribution of the pride condition on current love displays a positive skewness.
The DV current emotion: Awe marginally does not reach significance. When viewing the plots, it shows that the Neutral condition is negatively skewed when assessing current emotions of awe. In addition, participants in the love condition show a very large variance in current feelings of awe. These facts together provide explanations as to why the groups might not differ significantly from eachother on this DV.
The emotion conditions differ significantly on current experiences of Pride. Interestingly enough, the plot shows that participants in the pride condition actually do not score higher on current feelings of pride than participants in the love condition. This difference especially is interesting to approach with a t-test.
** Current feelings of love **
# based on group means compare 2 groups with highest group means (pride & love)
# equal variances not assumed
t.test(x = (dat$C_Love[dat$Emotion_Condition == "love"]), y = (dat$C_Love[dat$Emotion_Condition == "pride"]), var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: (dat$C_Love[dat$Emotion_Condition == "love"]) and (dat$C_Love[dat$Emotion_Condition == "pride"])
## t = 1.853, df = 18.691, p-value = 0.07974
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.09807472 1.59764182
## sample estimates:
## mean of x mean of y
## 5.654545 4.904762
sd(dat$C_Love[dat$Emotion_Condition == "love"])
## [1] 1.122821
sd(dat$C_Love[dat$Emotion_Condition == "pride"])
## [1] 1.015616
# Effect size
# "If the origial t-test did not make a homogeneit of variance assumption, as per the Welch test, the normalising term should mirror the Welchtest (method = unequal)" - Help documentation
cohensD(x = (dat$C_Love[dat$Emotion_Condition == "love"]), y = (dat$C_Love[dat$Emotion_Condition == "pride"]), method = "unequal")
## [1] 0.7003648
** Current feelings of awe **
# based on group means compare 2 groups with highest group means (awe & love)
# equal variances not assumed
t.test(x = (dat$C_Awe[dat$Emotion_Condition == "awe"]), y = (dat$C_Awe[dat$Emotion_Condition == "love"]), var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: (dat$C_Awe[dat$Emotion_Condition == "awe"]) and (dat$C_Awe[dat$Emotion_Condition == "love"])
## t = 0.40831, df = 19.905, p-value = 0.6874
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.233086 1.833086
## sample estimates:
## mean of x mean of y
## 3.5 3.2
sd((dat$C_Awe[dat$Emotion_Condition == "awe"]))
## [1] 1.706709
sd((dat$C_Awe[dat$Emotion_Condition == "love"]))
## [1] 1.949872
# Effect size
# "If the origial t-test did not make a homogeneit of variance assumption, as per the Welch test, the normalising term should mirror the Welchtest (method = unequal)" - Help documentation
cohensD(x = (dat$C_Awe[dat$Emotion_Condition == "awe"]), y = (dat$C_Awe[dat$Emotion_Condition == "love"]), method = "unequal")
## [1] 0.1637261
** Current feelings of pride **
# based on group means compare 2 groups with highest group means (pride & love)
# equal variances not assumed
t.test(x = (dat$C_Pride[dat$Emotion_Condition == "pride"]), y = (dat$C_Pride[dat$Emotion_Condition == "love"]), var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: (dat$C_Pride[dat$Emotion_Condition == "pride"]) and (dat$C_Pride[dat$Emotion_Condition == "love"])
## t = -0.68933, df = 20.125, p-value = 0.4985
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.5838176 0.7968046
## sample estimates:
## mean of x mean of y
## 4.342857 4.736364
sd(dat$C_Pride[dat$Emotion_Condition == "pride"])
## [1] 1.517423
sd(dat$C_Pride[dat$Emotion_Condition == "love"])
## [1] 1.542253
# Effect size
# "If the origial t-test did not make a homogeneit of variance assumption, as per the Welch test, the normalising term should mirror the Welchtest (method = unequal)" - Help documentation
cohensD(x = (dat$C_Pride[dat$Emotion_Condition == "pride"]), y = (dat$C_Pride[dat$Emotion_Condition == "love"]), method = "unequal")
## [1] 0.2572126
The current sample was not susceptible to the emotion induction according to the first criterion. Participants did not rate their current feelings of the target emotion higher than participants in the other emotion conditions. This criterion was copied from Piff et al. (2015) from whom we also used the method.
A less stringent criterion for successful emotion induction is that participants in each emotion condition should rate their feelings of the target emotion higher than other current feelings. In other words, participants in the love condition should rate their feelings of love higher than their feelings of awe and pride.
pirateplot(DV_Love_long$Rating ~ DV_Love_long$Current_Feeling, data = DV_Love_long, pal = gray(.7), xlab = "Current Feelings of ...", main = "Emotion Condition: Love", ylab = "Self Report Rating", ylim=c(1,7))
Figure 8. Emotion Condition: Love. The horizontal black line represent the group average. The solid boxes represent the 95% CI. The distribution of scores is outlined by a black line. All individual datapoints are represented by single dots.
pirateplot(DV_Awe_long$Rating ~ DV_Awe_long$Current_Feeling, data = DV_Awe_long, pal = gray(.7), xlab = "Current Feelings of ...", main = "Emotion Condition: Awe", ylab = "Self Report Rating", ylim=c(1,7))
Figure 9. Emotion Condition: Awe. The horizontal black line represent the group average. The solid boxes represent the 95% CI. The distribution of scores is outlined by a black line. All individual datapoints are represented by single dots.
pirateplot(DV_Pride_long$Rating ~ DV_Pride_long$Current_Feeling, data = DV_Pride_long, pal = gray(.7), xlab = "Current Feelings of ...", main = "Emotion Condition: Pride", ylab = "Self Report Rating", ylim=c(1,7))
Figure 10. Emotion Condition: Pride. The horizontal black line represent the group average. The solid boxes represent the 95% CI. The distribution of scores is outlined by a black line. All individual datapoints are represented by single dots.
tt_1 <- t.test(DV_Love$C_Love, DV_Love$C_Pride, paired = TRUE)
tt_2 <- t.test(DV_Love$C_Love, DV_Love$C_Awe, paired = TRUE)
# Data for awe in DV_Awe
tt_3 <- t.test(DV_Awe$C_Awe, DV_Awe$C_Love, paired = TRUE)
tt_4 <- t.test(DV_Awe$C_Awe, DV_Awe$C_Pride, paired = TRUE)
# Data for Pride in DV_Pride
tt_5 <- t.test(DV_Pride$C_Pride, DV_Pride$C_Love, paired = TRUE)
tt_6 <- t.test(DV_Pride$C_Pride, DV_Pride$C_Awe, paired = TRUE)
Bonferroni correction for multiple comparisons (N = 6)
# store p_values
all_emotion_induction2_p <- c(tt_1$p.value, tt_2$p.value, tt_3$p.value, tt_4$p.value, tt_5$p.value, tt_6$p.value)
# Round the adjusted p-values (bonferroni correction) to three digits
round(p.adjust(all_emotion_induction2_p,method="bonferroni", n = length(all_emotion_induction2_p)), digits = 3)
## [1] 0.608 0.028 0.046 1.000 0.346 0.012
Effect Sizes - Cohen’s d
cohensD(DV_Love$C_Love, DV_Love$C_Pride, method = "paired")
## [1] 0.5439187
cohensD(DV_Love$C_Love, DV_Love$C_Awe, method = "paired")
## [1] 1.092396
cohensD(DV_Awe$C_Awe, DV_Awe$C_Love, method = "paired")
## [1] 0.8024217
cohensD(DV_Awe$C_Awe, DV_Awe$C_Pride, method = "paired")
## [1] 0.2010308
cohensD(DV_Pride$C_Pride, DV_Pride$C_Love, method = "paired")
## [1] 0.4393803
cohensD(DV_Pride$C_Pride, DV_Pride$C_Awe, method = "paired")
## [1] 0.7737164
Conclusion T-test 2/3/6 are significant (p < .05) after Bonferroni correction. This indicates that participants in the love condition rate their current feelings of love significantly higher than their current feelings of awe. In addition, participants in the awe condition rate their current feelings of awe lower than current feelings of love. Thirdly, participants in the pride condition rate their current feelings of pride higher than feelings of awe.
The current sample was not susceptible to emotion induction. Participants did not rate their current feelings of the target emotion higher than other feelings.
Even after adopting a less stringent criterion, we were unable to conclude successful emotion induction. We therefore attempted to re-distribute participants across conditions based on their self-report ratings of feeling the experimental emotions.
One can argue that participants will behave according to the behavioral responses associated with the dominant emotion. In other words, if participants rate their current feelings higher on love, than on awe and pride, this person will act according to the behavioral responses associated with feeling love. Participants were assigned to the neutral condition if two or more current feelings received the same score (indicating ambivalence with regards to the dominant current emotion).
# Create new empty column
dat$Emotion_Condition_New <- 0
# LOOP over all participants
for (i in 1:nrow(dat)) {
# Initialize variables
love <- dat[i,"C_Love"] # self-report rating of love
awe <- dat[i,"C_Awe"] # self-report rating of awe
pride <- dat[i,"C_Pride"] # self-report rating of pride
multiple <- FALSE #are there multiple feelings with equal rating?
new_condition <- "empty" #which new condition should be assigned
# Determine which emotion is highest
if((love > awe) && (love > pride)){
new_condition <- "love"
} else if ((awe > love) && (awe > pride)) {
new_condition <- "awe"
} else if ((pride > love) && (pride > awe)) {
new_condition <- "pride"
} else {
multiple <- TRUE
} # END IF
# set new value
if (multiple == FALSE) {
dat[i, "Emotion_Condition_New"] <- new_condition
} else {
# multiple == TRUE == not highest on one condition == multiple emotions rated similar == neutral
dat[i, "Emotion_Condition_New"] <- "neutral"
} # END IF
} # END LOOP
# convert to factor to allow for summary tables
dat$Emotion_Condition_New <- factor(dat$Emotion_Condition_New)
# Display N participants in each condition
table(dat$Emotion_Condition_New)
##
## awe love neutral pride
## 7 47 4 21
One could also reason that a person is never absent of emotions, and thus a base-line level of each emotion is expected. Successful emotion induction is then indicated by a positive deviation from the base-line level (i.e., experiencing that emotion stronger than ‘normal’). Participants were re-distributed to an emotion condition if their current ratings of that emotion were higher than the sample mean (i.e., estimation of true base-line levels). Participants were assigned to the neutral condition if 1) no significant deviations were present or 2) if more than one deviation was measured.
# Create new empty column
dat$Emotion_Condition_New2 <- 0
# LOOP over all participants
for (i in 1:nrow(dat)) {
# Initialize variables
love <- dat[i,"C_Love"] # self-report rating of love
awe <- dat[i,"C_Awe"] # self-report rating of awe
pride <- dat[i,"C_Pride"] # self-report rating of pride
deviation_love <- FALSE # does pp deviate from love mean?
deviation_pride <- FALSE # does pp deviate from pride mean?
deviation_awe <- FALSE # does pp deviate from awe mean?
# group means & SDs calculated elsewhere
# descrp_Awe
# descrp_Love
#descrp_Pride
# check if higher than sample mean
if (love > descrp_Love$mean){
deviation_love <- TRUE
} # END love IF
if (awe > descrp_Awe$mean){
deviation_awe <- TRUE
} # END awe IF
if (pride > descrp_Pride$mean){
deviation_pride <- TRUE
} # END pride IF
# check for assignment to mulitple categories
if (sum(deviation_love+deviation_awe+deviation_pride) > 1) {
# if sum > 1 than more than one deviation = TRUE
multiple <- TRUE
} else {
multiple <- FALSE
}
# assign new group identities
if (multiple == TRUE) {
dat[i, "Emotion_Condition_New2"] <- "neutral"
} else if (deviation_love == TRUE) {
dat[i, "Emotion_Condition_New2"] <- "love"
} else if (deviation_awe == TRUE) {
dat[i, "Emotion_Condition_New2"] <- "awe"
} else if (deviation_pride == TRUE) {
dat[i, "Emotion_Condition_New2"] <- "pride"
} else {
# no deviations from group mean
dat[i, "Emotion_Condition_New2"] <- "neutral"
} # END IF
} # END LOOP
# convert to factor to allow for summary tables
dat$Emotion_Condition_New2 <- factor(dat$Emotion_Condition_New2)
# display N participants in each condition
summary(dat$Emotion_Condition_New2)
## awe love neutral pride
## 10 7 49 13
Grouping of participants according to the positive - neutral distinction. All positive emotion conditions are combined in “Positive Emotions Condition” and neutral is left intact.
# Create new empty column
dat$Emotion_Condition_New3 <- 0
# LOOP over all participants
for (i in 1:nrow(dat)) {
if (dat[i, "Emotion_Condition"] == "neutral") {
dat[i, "Emotion_Condition_New3"] <- "neutral"
} else {
dat[i, "Emotion_Condition_New3"] <- "positive"
} # END IF
} # END LOOP
# Convert to factor to allow summary tables
dat$Emotion_Condition_New3 <- factor(dat$Emotion_Condition_New3)
# Display N participants per condition
summary(dat$Emotion_Condition_New3)
## neutral positive
## 32 47
Attempt 1 and 2 did not create viable group sizes which could be used for future analyses. Consequently, further analyses will adhere to the experimental conditions created in Attempt 3 (Posive vs. Neutral)
manova_emotion_check_2cond <- manova(cbind(dat$C_Love, dat$C_Awe, dat$C_Pride, dat$C_Amusement, dat$C_Compassion, dat$C_Joy, dat$C_Contentment) ~ dat$Emotion_Condition_New3, data = dat)
summary(manova_emotion_check_2cond)
## Df Pillai approx F num Df den Df Pr(>F)
## dat$Emotion_Condition_New3 1 0.27383 3.8248 7 71 0.001401 **
## Residuals 77
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova_emotion_2cond <- summary.aov(manova_emotion_check_2cond)
anova_emotion_2cond
## Response 1 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 8.43 8.4298 4.8191 0.03116 *
## Residuals 77 134.69 1.7493
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 2 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 20.443 20.4427 9.2287 0.003252 **
## Residuals 77 170.564 2.2151
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 3 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 7.993 7.9926 3.0271 0.08588 .
## Residuals 77 203.307 2.6404
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 4 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 2.636 2.6356 1.0243 0.3147
## Residuals 77 198.128 2.5731
##
## Response 5 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 30.81 30.8100 8.6706 0.004274 **
## Residuals 77 273.61 3.5534
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 6 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 46.828 46.828 19.14 3.767e-05 ***
## Residuals 77 188.388 2.447
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response 7 :
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition_New3 1 4.684 4.6838 1.6074 0.2087
## Residuals 77 224.372 2.9139
Bonferroni correction for multiple comparissons
# Store p-values from the post-hoc anova's, indexed by [[which anova]][1st item of 5th item]
p_values_emotion_anovas_cond2 <- c(anova_emotion_2cond[[1]][1,5], anova_emotion_2cond[[2]][1,5],anova_emotion_2cond[[3]][1,5], anova_emotion_2cond[[4]][1,5], anova_emotion_2cond[[5]][1,5],anova_emotion_2cond[[6]][1,5], anova_emotion_2cond[[7]][1,5])
# Round the adjusted p-values (bonferroni correction) to three digits
round(p.adjust(p_values_emotion_anovas_cond2,method="bonferroni", n = length(p_values_emotion_anovas_cond2)), digits = 3)
## [1] 0.218 0.023 0.601 1.000 0.030 0.000 1.000
Conclusion 2nd,5th, 6th different between positive emotions condition and neutral = Awe / Compassion / Joy
A second set of manipulations checks was included to ensure that each positive emotion condition was matched on arousal, and general positive and negative affect. In addition, an intensity rating of each recalled memory was included to ensure that all conditions were matched on memory intensity.
Hypotheses
pirateplot(dat$C_Positive ~ dat$Emotion_Condition_New3, data = dat, pal = gray(.7), xlab = "Conditions", main = "General Positive Affect", ylab = "Self Report Rating", ylim=c(1,7))
t.test(x = dat$C_Positive[dat$Emotion_Condition_New3 == "neutral"], y = dat$C_Positive[dat$Emotion_Condition_New3 == "positive"], var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: dat$C_Positive[dat$Emotion_Condition_New3 == "neutral"] and dat$C_Positive[dat$Emotion_Condition_New3 == "positive"]
## t = -1.9326, df = 54.37, p-value = 0.0585
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.98828082 0.01806806
## sample estimates:
## mean of x mean of y
## 4.700000 5.185106
sd(dat$C_Positive[dat$Emotion_Condition_New3 == "positive"])
## [1] 0.9122306
sd(dat$C_Positive[dat$Emotion_Condition_New3 == "neutral"])
## [1] 1.204026
cohensD(x = dat$C_Positive[dat$Emotion_Condition_New3 == "neutral"], y = dat$C_Positive[dat$Emotion_Condition_New3 == "positive"], method = "unequal")
## [1] 0.4541603
Conclusion
Participants in the positive emotion condition rated their current state as more positive (M = 5.2, SD = 0.9) than did participants in the neutral condition (M = 4.7, SD = 1.2). This trend approached significance (t(54.37) = -1.93, p = .059)
pirateplot(dat$C_Negative ~ dat$Emotion_Condition_New3, data = dat, pal = gray(.7), xlab = "Conditions", main = "General Negative Affect", ylab = "Self Report Rating", ylim=c(1,7))
t.test(x = dat$C_Negative[dat$Emotion_Condition_New3 == "neutral"], y = dat$C_Negative[dat$Emotion_Condition_New3 == "positive"], var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: dat$C_Negative[dat$Emotion_Condition_New3 == "neutral"] and dat$C_Negative[dat$Emotion_Condition_New3 == "positive"]
## t = 1.1563, df = 64.138, p-value = 0.2518
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.2189108 0.8206395
## sample estimates:
## mean of x mean of y
## 2.609375 2.308511
sd(dat$C_Negative[dat$Emotion_Condition_New3 == "neutral"])
## [1] 1.161023
sd(dat$C_Negative[dat$Emotion_Condition_New3 == "positive"])
## [1] 1.096403
cohensD(x = dat$C_Negative[dat$Emotion_Condition_New3 == "neutral"], y = dat$C_Negative[dat$Emotion_Condition_New3 == "positive"], method = "unequal")
## [1] 0.2664461
Conclusion
Participants in the positive emotions condition (M = 2.3, SD = 1.10) rated their current state as slightly less negative than did participants in the neutral condition (M = 2.61, SD = 1.16), this difference was not significant (t (64.138) = 1.16, p = .252)
pirateplot(dat$C_Aroused ~ dat$Emotion_Condition_New3, data = dat, pal = gray(.7), xlab = "Conditions", main = "Arousal", ylab = "Self Report Rating", ylim=c(1,7))
t.test(x = dat$C_Aroused[dat$Emotion_Condition_New3 == "neutral"], y = dat$C_Aroused[dat$Emotion_Condition_New3 == "positive"], var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: dat$C_Aroused[dat$Emotion_Condition_New3 == "neutral"] and dat$C_Aroused[dat$Emotion_Condition_New3 == "positive"]
## t = -1.55, df = 62.45, p-value = 0.1262
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.1194507 0.1415252
## sample estimates:
## mean of x mean of y
## 3.281250 3.770213
sd(dat$C_Aroused[dat$Emotion_Condition_New3 == "neutral"])
## [1] 1.426803
sd(dat$C_Aroused[dat$Emotion_Condition_New3 == "positive"])
## [1] 1.298815
cohensD(x = dat$C_Aroused[dat$Emotion_Condition_New3 == "neutral"], y = dat$C_Aroused[dat$Emotion_Condition_New3 == "positive"], method = "unequal")
## [1] 0.3583955
Conclusion On average, participants in the positive emotions condition (M = 3.77, SD = 1.30) reported equal levels of arousal as participants in the neutral condition (M = 3.28, SD = 1.43; t (62.45) = 1.55, p = .126).
# creat new empty columns
dat$Memory_Intensity1 <- 0
dat$Memory_Intensity2 <- 0
dat$Memory_Intensity3 <- 0
dat$Mean_Memory_Intensity <- 0
# Store Intensities for Memory 1
for (i in 1:nrow(dat)) {
if (dat[i,"Emotion_Condition"] == 'pride') {
dat[i,"Memory_Intensity1"] <- dat[i,"Pride_Intensity1"]
} else if (dat[i,"Emotion_Condition"] == 'love') {
dat[i,"Memory_Intensity1"] <- dat[i,"Love_Intensity1"]
} else if (dat[i,"Emotion_Condition"] == 'awe') {
dat[i,"Memory_Intensity1"] <- dat[i,"Awe_Intensity1"]
} else {
# dat[i,"Emotion_Condition"] == 'neutral'
dat[i,"Memory_Intensity1"] <- dat[i,"Neutral_Intensity1"]
}# END emotion_condition IF
}# END for LOOP
# Store Intensities for Memory 2
for (i in 1:nrow(dat)) {
if (dat[i,"Emotion_Condition"] == 'pride') {
dat[i,"Memory_Intensity2"] <- dat[i,"Pride_Intensity2"]
} else if (dat[i,"Emotion_Condition"] == 'love') {
dat[i,"Memory_Intensity2"] <- dat[i,"Love_Intensity2"]
} else if (dat[i,"Emotion_Condition"] == 'awe') {
dat[i,"Memory_Intensity2"] <- dat[i,"Awe_Intensity2"]
} else {
# dat[i,"Emotion_Condition"] == 'neutral'
dat[i,"Memory_Intensity2"] <- dat[i,"Neutral_Intensity2"]
}# END emotion_condition IF
}# END for LOOP
# Store Intensities for Memory 3
for (i in 1:nrow(dat)) {
if (dat[i,"Emotion_Condition"] == 'pride') {
dat[i,"Memory_Intensity3"] <- dat[i,"Pride_Intensity3"]
} else if (dat[i,"Emotion_Condition"] == 'love') {
dat[i,"Memory_Intensity3"] <- dat[i,"Love_Intensity3"]
} else if (dat[i,"Emotion_Condition"] == 'awe') {
dat[i,"Memory_Intensity3"] <- dat[i,"Awe_Intensity3"]
} else {
# dat[i,"Emotion_Condition"] == 'neutral'
dat[i,"Memory_Intensity3"] <- dat[i,"Neutral_Intensity3"]
}# END emotion_condition IF
}# END for LOOP
# calculate average memory intensity
for (i in 1:nrow(dat)) {
dat[i,"Mean_Memory_Intensity"] <- mean(c(dat[i,"Memory_Intensity1"], dat[i,"Memory_Intensity2"],
dat[i,"Memory_Intensity3"]))
} # END for LOOP
pirateplot(dat$Mean_Memory_Intensity ~ dat$Emotion_Condition_New3, data = dat, pal = gray(.7), xlab = "Conditions", main = "Mean Memory Intensity", ylab = "Self Report Rating", ylim=c(1,7))
t.test(x = dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "neutral"], y = dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "positive"], var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "neutral"] and dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "positive"]
## t = -13.179, df = 59.026, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.333580 -2.454762
## sample estimates:
## mean of x mean of y
## 2.542708 5.436879
sd(dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "neutral"])
## [1] 1.01925
sd(dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "positive"])
## [1] 0.860604
cohensD(x = dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "neutral"], y = dat$Mean_Memory_Intensity[dat$Emotion_Condition_New3 == "positive"], method = "unequal")
## [1] 3.068238
In contrast to our hypotheses, participants in the positive emotion condition rated their memories as more intense than participants in the neutral condition. All other hyptheses were confirmed as likely.
As part of exploratory analyses we analyzed the content of the emotion memories by means of the LWIC software. The LWIC software requires a long format of memories.
# create empty matrix
Memories_Total_Long <- matrix(, nrow = (nrow(dat)*3), ncol = 4)
colnames(Memories_Total_Long) <- c("Emotion_Condition", "Memory_Text", "Memory_Order", " ")
# fill matrix with relevant data
for (i in 1:nrow(dat)) {
# set index
if (i == 1) {
x <- 1
} else {
x <- ((i-1)*3)+1
}
# determine condition
if (dat[i, "Emotion_Condition"] == "love") {
# Assign condition 3 times (once for each memory)
Memories_Total_Long[x,1] <- "Love"
Memories_Total_Long[(x+1),1] <- "Love"
Memories_Total_Long[(x+2),1] <- "Love"
# Extract memories
Memories_Total_Long[x,2] <- dat[i,15] #Love_Memory1
Memories_Total_Long[(x+1),2] <- dat[i,17] #Love_Memory2
Memories_Total_Long[(x+2),2] <- dat[i,19] #Love_Memory3
} else if (dat[i,"Emotion_Condition"] == 'awe') {
# Assign condition 3 times (once for each memory)
Memories_Total_Long[x,1] <- "Awe"
Memories_Total_Long[(x+1),1] <- "Awe"
Memories_Total_Long[(x+2),1] <- "Awe"
# Extract memories
Memories_Total_Long[x,2] <- dat[i,23] #Awe_Memory1
Memories_Total_Long[(x+1),2] <- dat[i,25] #Awe_Memory2
Memories_Total_Long[(x+2),2] <- dat[i,27] #Awe_Memory3
} else if (dat[i,"Emotion_Condition"] == 'pride') {
# Assign condition 3 times (once for each memory)
Memories_Total_Long[x,1] <- "Pride"
Memories_Total_Long[(x+1),1] <- "Pride"
Memories_Total_Long[(x+2),1] <- "Pride"
# Extract memories
Memories_Total_Long[x,2] <- dat[i,31] #Pride_Memory1
Memories_Total_Long[(x+1),2] <- dat[i,33] #Pride_Memory2
Memories_Total_Long[(x+2),2] <- dat[i,35] #Pride_Memory3
} else {
# emotion_condition == neutral
# Assign condition 3 times (once for each memory)
Memories_Total_Long[x,1] <- "Neutral"
Memories_Total_Long[(x+1),1] <- "Neutral"
Memories_Total_Long[(x+2),1] <- "Neutral"
# Extract memories
Memories_Total_Long[x,2] <- dat[i,39] #Neutral_Memory1
Memories_Total_Long[(x+1),2] <- dat[i,41] #Neutral_Memory2
Memories_Total_Long[(x+2),2] <- dat[i,43] #Neutral_Memory3
}# END IF EMOTION CONDITION
# Log order of memories
Memories_Total_Long[x,3] <- 1
Memories_Total_Long[(x+1),3] <- 2
Memories_Total_Long[(x+2),3] <- 3
# Log participant
Memories_Total_Long[x,4] <- i
Memories_Total_Long[(x+1),4] <- i
Memories_Total_Long[(x+2),4] <- i
} # END LOOP
write.csv(Memories_Total_Long, file = "Memories_Combined.csv")
Run csv file through LWIC software analysis. Save output. Open in excel * Data to columns > komma seperated * Remove column A (unnecessary) * Remove row 2 (unnecessary)
Read in the data in R. NOTE pay attention to the working directory.
data_lwic <- read.csv2(file = "LIWC2015 Results (Memories_Combined).csv", header = TRUE)
The LWIC software does not work accurately for languages other than English. In order to compare between conditions these data should thus be removed. Amount of memories in each language:
if ((nrow(data_lwic)/3) > nrow(dat)) {
warning("Incorrect LWIC file, LWIC file contains data of more participants than the dat file")
}
data_lwic$language <- ""
for (i in 1:nrow(data_lwic)){
memory <- data_lwic[i, "Memory_Text"]
if ((grepl(pattern = "ik ", x = memory, fixed = TRUE)) == TRUE) {
# if true than ik [space] is included in the text. this is a dutch word
data_lwic[i, "language"] <- "Dutch"
} else {
data_lwic[i, "language"] <- "English"
}
} # END LOOP
data_lwic$language[is.na(data_lwic$language)] <- "Dutch"
data_lwic$language <- factor(data_lwic$language)
summary(data_lwic$language)
## Dutch English
## 21 216
data_lwic <- data_lwic[-(as.numeric(which(data_lwic$language == "Dutch"))),]
# convert long to wide format
## Create new data columns
dat$Memory1_pos <- 0
dat$Memory2_pos <- 0
dat$Memory3_pos <- 0
dat$Memory1_neg <- 0
dat$Memory2_neg <- 0
dat$Memory3_neg <- 0
## Index newly created columns
col_mem1 <- as.numeric(which(colnames(dat) == 'Memory1_pos', arr.ind = TRUE, useNames = TRUE))
col_mem2 <- as.numeric(which(colnames(dat) == 'Memory2_pos', arr.ind = TRUE, useNames = TRUE))
col_mem3 <- as.numeric(which(colnames(dat) == 'Memory3_pos', arr.ind = TRUE, useNames = TRUE))
col_mem1_neg <- as.numeric(which(colnames(dat) == 'Memory1_neg', arr.ind = TRUE, useNames = TRUE))
col_mem2_neg <- as.numeric(which(colnames(dat) == 'Memory2_neg', arr.ind = TRUE, useNames = TRUE))
col_mem3_neg <- as.numeric(which(colnames(dat) == 'Memory3_neg', arr.ind = TRUE, useNames = TRUE))
for (i in 1:nrow(data_lwic)){
pp <- data_lwic[i, "Participant_Nr"]
if (data_lwic[i, "Memory_Order"] == 1) {
dat[pp, col_mem1] <- data_lwic[i, "posemo"]
dat[pp, col_mem1_neg] <- data_lwic[i, "negemo"]
} # END MEMROY 1 IF
if (data_lwic[i, "Memory_Order"] == 2) {
dat[pp, col_mem2] <- data_lwic[i, "posemo"]
dat[pp, col_mem2_neg] <- data_lwic[i, "negemo"]
} # END MEMORY 2 IF
if (data_lwic[i, "Memory_Order"] == 3) {
dat[pp, col_mem3] <- data_lwic[i, "posemo"]
dat[pp, col_mem3_neg] <- data_lwic[i, "negemo"]
} # END MEMORY 3 IF
} # END LOOP
## Calculate averages
dat$Mean_Memory_Pos <- 0
dat$Mean_Memory_Neg <- 0
col_avg_pos <- as.numeric(which(colnames(dat) == 'Mean_Memory_Pos', arr.ind = TRUE, useNames = TRUE))
col_avg_neg <- as.numeric(which(colnames(dat) == 'Mean_Memory_Neg', arr.ind = TRUE, useNames = TRUE))
for (i in 1:nrow(dat)){
dat[i, col_avg_pos] <- round(mean(c(dat[i,col_mem1], dat[i, col_mem2], dat[i, col_mem3])), 2)
dat[i, col_avg_neg] <- round(mean(c(dat[i,col_mem1_neg], dat[i, col_mem2_neg], dat[i, col_mem3_neg])), 2)
} # END LOOP
## Calculate averages
dat$Mean_Memory_Pos <- 0
dat$Mean_Memory_Neg <- 0
col_avg_pos <- as.numeric(which(colnames(dat) == 'Mean_Memory_Pos', arr.ind = TRUE, useNames = TRUE))
col_avg_neg <- as.numeric(which(colnames(dat) == 'Mean_Memory_Neg', arr.ind = TRUE, useNames = TRUE))
for (i in 1:nrow(dat)){
dat[i, col_avg_pos] <- round(mean(c(dat[i,col_mem1], dat[i, col_mem2], dat[i, col_mem3])), 2)
dat[i, col_avg_neg] <- round(mean(c(dat[i,col_mem1_neg], dat[i, col_mem2_neg], dat[i, col_mem3_neg])), 2)
} # END LOOP
pirateplot(dat$Mean_Memory_Pos ~ dat$Emotion_Condition_New3, data = dat, pal = gray(.7), xlab = "Conditions", main = "Positive Emotion Words", ylab = "Mean % of Positive Emotion Words", ylim=c(1,7))
t.test(x = dat$Mean_Memory_Pos[dat$Emotion_Condition_New3 == "neutral"], y = dat$Mean_Memory_Pos[dat$Emotion_Condition_New3 == "positive"], var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: dat$Mean_Memory_Pos[dat$Emotion_Condition_New3 == "neutral"] and dat$Mean_Memory_Pos[dat$Emotion_Condition_New3 == "positive"]
## t = -5.7351, df = 75.601, p-value = 1.899e-07
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -3.757867 -1.820470
## sample estimates:
## mean of x mean of y
## 2.235937 5.025106
sd(dat$Mean_Memory_Pos[dat$Emotion_Condition_New3 == "positive"])
## [1] 2.717096
sd(dat$Mean_Memory_Pos[dat$Emotion_Condition_New3 == "neutral"])
## [1] 1.594419
Conclusion
An independent samples t-test of the mean percentage of positive emotions words used across the three recalled memories showed that participants in the positive emotion condition (M = 5.06, SD = 2.66) used more positive emotion words to recall their memories than participants in the neutral condition (M = 2.30, SD = 1.52; t(75.134) = 5.86, p < .01).
pirateplot(dat$Mean_Memory_Pos ~ dat$Emotion_Condition_New3, data = dat, pal = gray(.7), xlab = "Conditions", main = "Positive Emotion Words", ylab = "Mean % of Positive Emotion Words", ylim=c(1,7))
t.test(x = dat$Mean_Memory_Neg[dat$Emotion_Condition_New3 == "neutral"], y = dat$Mean_Memory_Neg[dat$Emotion_Condition_New3 == "positive"], var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: dat$Mean_Memory_Neg[dat$Emotion_Condition_New3 == "neutral"] and dat$Mean_Memory_Neg[dat$Emotion_Condition_New3 == "positive"]
## t = 0.89965, df = 58.694, p-value = 0.372
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.2418660 0.6369325
## sample estimates:
## mean of x mean of y
## 0.9809375 0.7834043
sd(dat$Mean_Memory_Neg[dat$Emotion_Condition_New3 == "neutral"])
## [1] 1.021575
sd(dat$Mean_Memory_Neg[dat$Emotion_Condition_New3 == "positive"])
## [1] 0.8561727
Conclusion
Participants in the neutral (M = 0.99, SD = 1.01) and positive emotion conditions (M = 0.81, SD = 0.84) used approximately the same amount of negative emotions words (t(58.375) = 0.85, p = .399).
pirateplot(dat$Mean_Memory_Pos ~ dat$Emotion_Condition, data = dat, pal = gray(.7), xlab = "Conditions", main = "Positive Emotion Words", ylab = "Mean % of Positive Emotion Words", ylim=c(1,7))
Fit ANOVA model to test if differences in use of positive emotion words across conditions is significant.
fit <- aov(dat$Mean_Memory_Pos ~ dat$Emotion_Condition)
summary(fit)
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition 3 168.6 56.19 10.59 6.94e-06 ***
## Residuals 75 397.9 5.31
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
effect size
etaSquared(fit)
## eta.sq eta.sq.part
## dat$Emotion_Condition 0.2975637 0.2975637
post-hoc Tukeys
TukeyHSD(x = fit)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = dat$Mean_Memory_Pos ~ dat$Emotion_Condition)
##
## $`dat$Emotion_Condition`
## diff lwr upr p adj
## love-awe 1.6842424 -0.7183396 4.08682441 0.2621220
## neutral-awe -1.8707292 -3.7646500 0.02319169 0.0541169
## pride-awe 1.1733333 -0.8727791 3.21944574 0.4386096
## neutral-love -3.5549716 -5.6703906 -1.43955254 0.0001923
## pride-love -0.5109091 -2.7636047 1.74178653 0.9330010
## pride-neutral 3.0440625 1.3443056 4.74381940 0.0000659
Conclusion
An ANOVA showed that the effect of experimental emotion condition was significant for the number of positive words used in the recalled memories (F(3,75) = 11.03, p < .01). Post hoc Tukey’s Honest Significant Differences tests (N = 6) indicated that the number of positive words used was higher in the awe (p = .05), love (p < .01), and pride (p < .01) condition than in the neutral condition. The positive emotion conditions did not differ in the amount of positive words used to recall their emotionally salient memories (love-awe p = .237; pride-awe p = .409; pride-love p = .929).
pirateplot(dat$Mean_Memory_Neg ~ dat$Emotion_Condition, data = dat, pal = gray(.7), xlab = "Conditions", main = "Positive Emotion Words", ylab = "Mean % of Positive Emotion Words", ylim=c(1,7))
Fit ANOVA model to test if differences in use of positive emotion words across conditions is significant.
fit2 <- aov(dat$Mean_Memory_Neg ~ dat$Emotion_Condition)
summary(fit2)
## Df Sum Sq Mean Sq F value Pr(>F)
## dat$Emotion_Condition 3 4.59 1.5306 1.845 0.146
## Residuals 75 62.22 0.8296
Conclusion
The ANOVA showed that experimental emotion condition was not related to the use of negative emotion words during memory recall (F(3,75) = 1.672, p = 0.18).
Correlation between positive and negative emotion words
cor(dat$Mean_Memory_Neg, dat$Mean_Memory_Pos)
## [1] 0.1201712